package com.ruoyi.common.core.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 退款流水表，记录所有退款相关的信息
 * </p>
 *
 * @author wwq
 * @since 2024-05-20
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("wsd_refund_transactions")
public class WsdRefundTransactions implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 退款流水表的主键ID，唯一标识每条退款记录
     */
    @TableId(value = "refund_transaction_id", type = IdType.AUTO)
    private Long refundTransactionId;

    /**
     * 学校ID，标识退款所属的学校
     */
    private Long schoolId;

    /**
     * 餐费退款记录ID
     */
    private Long mealRefundsId;

    /**
     * 用户ID(家长id)
     */
    private Long userId;

    /**
     * 学生ID
     */
    private Long studentId;

    /**
     * 原交易订单号，关联的交易ID
     */
    private String transactionId;

    /**
     * 退款流水号，此次退款的唯一标识
     */
    private String refundId;

    /**
     * 退款订单号，此次退款的唯一标识
     */
    private String refundOrderNo;

    /**
     * 退款金额
     */
    private BigDecimal refundAmount;

    /**
     * 交易时间，原交易的完成时间
     */
    private LocalDateTime transactionDate;

    /**
     * 退款时间，退款操作的实际时间
     */
    private LocalDateTime refundDate;

    /**
     * 退款状态，0-申请退款，1-处理中，2-已完成
     */
    private Integer status;

    /**
     * 退款餐型，0-早餐，1-午餐，2-晚餐
     */
    private Integer mealType;

    /**
     * 退款原因，描述退款申请的理由
     */
    private String reason;

    /**
     * 记录的创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 记录的最后修改时间
     */
    private LocalDateTime updatedAt;

    /**
     * 记录创建人ID
     */
    private Integer createdBy;

    /**
     * 记录最后修改人ID
     */
    private Integer updatedBy;


}
